<?php
/**
 * ###################################################
 *
 * 数据库操作类
 * Date : 2008-12-6
 *
 * WINDBOOK - PHP Guestbook System
 * Copyright (c) 2008 Windsfly.CN
 * Author : 孙峰
 * Contact : QQ( 105857855,729028242 ) 
 * E-mail : sf0223cn@163.com
 * Support : http://www.windsfly.cn
 * Author Blog : http://www.windsfly.cn/blog
 *
 * ###################################################
 */
 
class MySql {

	var $user,$pass,$host,$db;
	var $id,$data,$fields,$row,$row_num,$insertid,$version,$query_num=0;

	function MySql($host,$user,$pass,$db)
	{
		$this->host = $host;
		$this->pass = $pass;
		$this->user = $user;
		$this->db = $db;
		$this->dbconnect($this->host, $this->user, $this->pass);
		$this->selectdb($this->db);
		if($this->version() >'4.1')
		mysql_query("SET NAMES 'UTF8'");
	}
	function dbconnect($host,$user,$pass)
	{
		$this->id = @ mysql_connect($host,$user,$pass) OR
		sysMsg("连接数据库失败,可能是mysql数据库用户名或密码错误");
	}
	function selectdb($db)
	{
		@ mysql_select_db($db,$this->id) OR sysMsg("未找到指定数据库");
	}

	function query($sql)
	{
		$query = @ mysql_query($sql,$this->id) OR sysMsg("SQL语句执行错误：$sql <br />".$this->geterror());
		$this->query_num();
		return $query;
	}

	function fetch_array($query)
	{
		$this->data = @mysql_fetch_array($query);
		return $this->data;
	}
	function query_num()
	{
		$this->query_num++;
	}
	function num_fields($query)
	{
		$this->fields = @mysql_num_fields($query);
		return $this->fields;
	}
	function fetch_row($query)
	{
		$this->row = @mysql_fetch_row($query);
		return $this->row;
	}

	function num_rows($query)
	{
		$this->row_num = @mysql_num_rows($query);
		return $this->row_num;
	}

	function insert_id()
	{
		$this->insertid = mysql_insert_id();
		return $this->insertid;
	}
	function version()
	{
		$this->version = mysql_get_server_info();
		return $this->version;
	}
	function fetch_one_array($sql)
	{
		$query = $this->query($sql);
		$this->data = $this->fetch_array($query);
		return $this->data;
	}
	function geterror()
	{
		return mysql_error();
	}
}

 /*////////////////////////////////////////////////////////////////////  
 //     copyright   (c)     mylu.net   2005  
 //     文件名:   pagec.php  
 //     描述:   PHP-MYSQL简单分页类  
 //     作者:   李禄燊  
 //     日期:   2005-9-20  
 // 传播:   随便传播  
 ///////////////////////////////////////////////////////////////////////  
//     使用举例:  
  include("pagec.php");   //包含“pageft.php”文件    
  $page=$_GET["page"];   //当前页  
  if   (empty($page))   $page=1;  
  $result=mysql_query("select   *   from   table");    
  $total=mysql_num_rows($result);    
  //调用pagec类，每页显示10条信息   ,   使用本页URL（默认，所以省略掉,还可以类似   list.php?id=1）。    
  $obj=new   pagec($total,   '10',   'bookadmin.php');    
   
  $sql   =   "select   *   from   table   limit   ".$obj->pagestart($page).",   10   ";  
  $result=mysql_query($sql);  
  while($row1=mysql_fetch_array($result)){    
  //（列表内容略）  
  }  
  echo   $obj->pageindex($page);//输出分页导航  
   
  *//////////////////////////////////////////////////////////////////////  
   
  class   pagec  
  {  
  var   $size;   //总数   如1000  
  var   $pagesize;//每页条数   如   20  
  var   $url;//   文件名   如   list.php  
   
  //构造函数。  
          //参数$pagesize用来指定每页显示多少条记录，如果不指定，表示全部显示而不用分页  
          //使用方法：  
          //               $obj=new   pagec('1000',   '20',   'list.php');  
          //或：       $obj=new   pagec();  
          //               $obj->size="1000";  
          //               $obj->pagesize="20";  
  //               $obj->url="list.php";  
  function   pagec($size,   $pagesize,   $url)  
  {  
  $this->size   =   $size;  
  $this->pagesize   =   $pagesize;  
  $this->url   =   $url;  
  }  
   
   
   
  //获取当前页开始记录。  
          //参数$page用来指当前页  
          //使用方法：  
          //               $obj=new   pagec('1000',   '20',   'list.php');  
  //               $obj->pagestart($page);  
  //               $sql   =   "select   *   from   mytable   order   by   id   desc   limit   ".$obj->pagestart(1).",   $pagesize   ";   第一页  
  function   pagestart($page=1)  
  {  
  return   ($page-1)*$this->pagesize;  
  }  
   
  //     开始分页导航条代码：  
  //     使用方法：  
  //     echo   $obj->pageindex($page);  
   
   function	nextpage($page){
   $size   =   ceil($this->size/$this->pagesize);//共页数 
  // echo $page."<br />".$size;
	if(	$size <= 1)
	  return   false;   //如果只有一页则跳出函数：
	if($page   >=   $size){
	  return   true;}
	  else {
	  return false;}
   }
   
  function   pageindex($page)  
  {  
  //var   $pagenav;  
     
  $size   =   ceil($this->size/$this->pagesize);//共页数  
   
  //如果只有一页则跳出函数：    
  if($size<=1)    
  return   $pagenav;    
   
  $pagenav.="   <a   href='$this->url?page=1'>首页</a>   ";    
  if($page>1)  
  {  
  $ipage   =   $page-1;  
  $pagenav.="   <a   href='$this->url?page=$ipage'>前页</a>   ";    
  }  
  else    
  $pagenav.="   前页   ";  
   
  if($page   <   $size)    
  {  
  $ipage   =   $page+1;  
  $pagenav.="   <a   href='$this->url?page=$ipage'>后页</a>   ";    
  }  
  else    
  $pagenav.="   后页   ";    
  $pagenav.="   <a   href='$this->url?page=$size'>尾页</a>   ";    
   
  //下拉跳转列表，循环列出所有页码：    
  $pagenav.="到第   <select   name='topage'   size='1'   onchange='window.location=\"$this->url?page=\"+this.value'>\n";    
   
  for($i=1;$i<=ceil($this->size/$this->pagesize);$i++)  
  {    
  if($i==$page)  
  $pagenav.="<option   value='$i'   selected>$i</option>\n";    
  else    
  $pagenav.="<option   value='$i'>$i</option>\n";    
  }    
  $pagenav.="</select>   页，共   $size   页   ".$this->size   ."条记录";    
  return   $pagenav;  
   
  }  
function   searchindex($page)  
  {  
  //var   $pagenav;  
     
  $size   =   ceil($this->size/$this->pagesize);//共页数  
   
  //如果只有一页则跳出函数：    
  if($size<=1)    
  return   $pagenav;    
   
  $pagenav.="   <a   href='$this->url&page=1'>首页</a>";    
  if($page>1)  
  {  
  $ipage   =   $page-1;  
  $pagenav.="   <a   href='$this->url&page=$ipage'>前页</a> ";    
  }  
  else    
  $pagenav.="   前页   ";  
   
  if($page   <   $size)    
  {  
  $ipage   =   $page+1;  
  $pagenav.="   <a   href='$this->url&page=$ipage'>后页</a>";    
  }  
  else    
  $pagenav.="   后页";    
  $pagenav.="  <a   href='$this->url&page=$size'>尾页</a>";    
   
  //下拉跳转列表，循环列出所有页码：    
  $pagenav.="<ul id=\"search\"><li>到第   <select   name='topage'   size='1'   onchange='window.location=\"$this->url&page=\"+this.value'>\n";    
   
  for($i=1;$i<=ceil($this->size/$this->pagesize);$i++)  
  {    
  if($i==$page)  
  $pagenav.="<option   value='$i'   selected>$i</option>\n";    
  else    
  $pagenav.="<option   value='$i'>$i</option>\n";    
  }    
  $pagenav.="</select>   页，共   $size   页   ".$this->size   ."条记录</li></ul>";    
  return   $pagenav;  
   
  }  
  
  }  
   
  function sysMsg($info) 
{
print <<<EOT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>windbook error</title>
<style type="text/css">
<!--
body {
	background-color:#D4E9EA;
	font-family: Arial;
	font-size: 12px;
	line-height:150%;
}
-->
</style>
</head>
<body>
<p>$info</p>
<p><a href="javascript:history.back(-1);">返回</a></p>
</body>
</html>
EOT;
exit;
}?>